// pages/home/home.js

import{
  getMutiData,
  getProductData
} from '../../service/home.js'

import{
  POP,
  SELL,
  NEW,
  BACK_TOP_POSITION 
} from '../../common/const.js'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners:[],
    recommends:[],
    titles:['流行', '新款', '精选'],
    goods:{
      [POP]: { page: 1, list: [] },
      [SELL]: { page: 1, list: [] },
      [NEW]: { page: 1, list: [] }
    },
    currentType:'pop',
    showTabControl:false
      
  },
  

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

    this._getMutiData();
    this._getProductData(POP);
    this._getProductData(NEW);
    this._getProductData(SELL);
  },

  /**
   * 获取轮播图数据以及推荐数据
   */
  _getMutiData(){
    getMutiData().then(res => {
      console.log("以上是首页返回数据：\n");
      const banners = res.data.banner.list;
      const recommends = res.data.recommend.list;

      this.setData({
        banners: banners,
        recommends: recommends
      })
    })
  },
  // 获取流行、新款、精选数据
  _getProductData(type){

    const page = this.data.goods[type].page;
    getProductData(type,page).then(res=>{
      if(type == POP){
        console.log('以上是流行返回数据\n');
      }else if(type == NEW){
        console.log('以上是新款返回数据\n');
      }else if(type == SELL){
        console.log('以上是精选返回数据\n');
      }
      const list = res.data.list;
      const goods = this.data.goods;
      goods[type].list.push(...list);
      goods[type].page += 1;

      this.setData({
        goods:goods
      })
    })
  },

  scrollPosition(e){
    // 1.获取滚动的顶部
    const position = e.detail.scrollTop;
    // 2.设置是否显示
    this.setData({
      // showBackTop: position > BACK_TOP_POSITION,
    })
    wx.createSelectorQuery().select('.tab-control').boundingClientRect((rect) => {
      const show = rect.top > 0
      this.setData({
        showTabControl: !show
      })
    }).exec()
  },


// 组件的交互事件
  tabclick(e){
    let currentType = '';
    switch (e.detail.index) {
      case 0:
        currentType = POP
        break
      case 1:
        currentType = NEW
        break
      case 2:
        currentType = SELL
        break
    }
    this.setData({
      currentType:currentType
    })

    // 两个组件选中的下标统一
    this.selectComponent('.tab-control').setCurrentIndex(e.detail.index)
    this.selectComponent('.tab-control-temp').setCurrentIndex(e.detail.index)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})